package com.tinyseed.emcp.api.maintenance.domain.utlis;

import com.tinyseed.emcp.api.basicdata.domain.Enterprise;
import com.tinyseed.emcp.api.basicdata.domain.Monitor;
import com.tinyseed.emcp.api.exception.entity.ExceptionInfo;
import com.tinyseed.emcp.api.maintenance.domain.MaintenanceInfo;
import com.tinyseed.emcp.api.maintenance.state.MTNewState;

import java.sql.Timestamp;
import java.time.Instant;

/**
 * @version Revision 1.0.0
 * @版权：
 * @author: Howard
 * @email:
 * @see:
 * @创建日期：2020/3/14
 * @功能说明：维保信息工厂类
 * @begin
 * @修改记录:
 * @修改后版本 修改人        修改内容
 * @2020/3/14 wuxiran        创建
 * @end
 */
public class MaintenanceInfoFactory {

    public static MaintenanceInfo create(ExceptionInfo exceptionInfo) {
        MTNewState mtNewState = new MTNewState();

        return MaintenanceInfo.builder()
                .enterprise(Enterprise.builder().id(exceptionInfo.getEnterpriseId()).build())
                .monitor(Monitor.builder().id(exceptionInfo.getMonitorId()).build())
                .mtStatus(MTNewState.NEW_STATE_NAME)
                .mtStatusCode(MTNewState.NEW_STATE_CODE)
                .mtStartTime(Timestamp.from(Instant.now()))
                .exceptionInfo(exceptionInfo)
                /**
                 * 维保登记原因
                 */
                .mtRegistrationReason(exceptionInfo.getDescription())
                .build();
    }

}
